#include "drmsdi.h"
#include <QCoreApplication>
#include "ldCommon.h"

ldDRMSDI::ldDRMSDI(QObject *parent)
{

   m_AppPath = QCoreApplication::applicationDirPath();

   m_parent = parent;
    m_pOutSDIData = new  uint8_t[1920*1200*4];

    if (drm_init(2, 24, 1920, 1080) < 0) {
        fprintf(stderr, "init drm failed\n");

    }
    moveToThread(this);
}


ldDRMSDI::~ldDRMSDI()
{
    int i;

    drm_deinit();
    SAFE_DELETE_ARRAY(m_pOutSDIData);

}


void ldDRMSDI::OnRecNewFrame(stVFrame*  pNewFrame)
{
    //m_pOutSDIData 转换rgb 到 rgba ，最后那个a 填0，这个显示的sdi 设备最少支持rgba 32bit的，不支持rgb 24位
    m_nFps++;
    drm_render(pNewFrame->ucData, 24,
                  1920, 1080, 1920*3);
}

void ldDRMSDI::run()
{

   exec();
}


void ldDRMSDI::Stop()
{
   m_ThreadRun = 0;
   quit();
}

